Method, device and system for providing input suggestion

ABSTRACT

A computer-implemented method for providing an input suggestion for a user is disclosed. The computer-implemented method may include identifying an intended recipient of an electronic message input by the user; identifying a location associated with the user and a time associated with the electronic message input by the user; determining the input suggestion for the user based on an input profile of the intended recipient, the location, and the time; and outputting the input suggestion via a user device associated with the user.

TECHNICAL FIELD

The present disclosure relates to the field of communication devices andsystems and, more particularly, methods, devices and systems forproviding input suggestions.

BACKGROUND

In a electronic messaging environment, such as an instant messenger (IM)application, an EMAIL application, a text message application, or thelike, a sender of an electronic message often uses different vocabularyfrom that used by a recipient of the electronic message. For example,slang or abbreviation of a term used by the sender of the electronicmessage may not be comprehensible by the recipient. Moreover, a word orphrase may be understandable when the recipient has a similar generalbackground as the sender. For example, a technological term commonlyused in a software development team may be easily appreciated by membersof the development team, but the same word or phrase may not beunderstandable if the recipient lacks such background. As a result ofthe vocabulary mismatch between the sender and recipient, communicationsare sometimes hampered.

One option would be to provide input suggestions to the electronicmessage senders so as to more effectively convey the electronic message.One way to provide input suggestions to an electronic message sender isto construct a linguistic profile for the recipient based on thelanguage choices of the recipient so as to match the sender's vocabularywith the recipient's vocabulary. However, frequently the languagechoices of the recipient are different in various application scenarios,and the linguistic profile does not reflect the recipient's languagechoices in these different application scenarios.

SUMMARY

In one disclosed embodiment, a computer-implemented method for providingan input suggestion for a user is disclosed. The computer-implementedmethod comprises identifying an intended recipient of an electronicmessage input by the user; identifying a location associated with theuser and a time associated with the electronic message input by theuser; determining the input suggestion for the user based on an inputprofile of the intended recipient, the location, and the time; andoutputting the input suggestion via a user device associated with theuser.

In another disclosed embodiment, a user device is disclosed. The userdevice comprises a display and at least one processor. The at least oneprocessor is configured to identify an intended recipient of anelectronic message input by a user; identify a location associated withthe user and a time associated with the electronic message input by theuser; determine the input suggestion for the user based on an inputprofile of the intended recipient, the location, and the time; and causethe input suggestion to be output via the user device.

In another disclosed embodiment, a non-transitory computer readablemedium is disclosed. The non-transitory computer readable medium storesa set of instructions that is executable by at least one processor of auser device to cause the user device to perform a method for providingan input suggestion for a user. The method comprises identifying anintended recipient of an electronic message input by the user;identifying a location associated with the user and a time associatedwith the electronic message input by the user; determining the inputsuggestion for the user based on an input profile of the intendedrecipient, the location, and the time; and outputting the inputsuggestion via a user device associated with the user.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings, which are incorporated in and constitute partof this disclosure, together with the description, illustrate and serveto explain the principles of various example embodiments.

FIG. 1 is a diagram of an example of a communications system in whichvarious implementations described herein may be practiced.

FIG. 2 is a diagram of an example user device for implementingembodiments consistent with the present disclosure.

FIG. 3 is a diagram of an example communication server, consistent withthe disclosed embodiments.

FIG. 4 is a flowchart of an example process for providing an inputsuggestion, in accordance with embodiments of the present disclosure.

FIG. 5 is a flowchart of an example process for providing user inputprofiles, in accordance with embodiments of the present disclosure.

DETAILED DESCRIPTION

Reference will now be made in detail to the example embodimentsimplemented according to the present disclosure, the examples of whichare illustrated in the accompanying drawings. Wherever possible, thesame reference numbers will be used throughout the drawings to refer tothe same or like parts.

In a communication environment that provides electronic messagingservices, such as a chat application, a text messaging application, anEMAIL application, etc., a sender of an electronic message may usedifferent terminology or vocabulary from that used by a recipient of theelectronic message, and thus certain words or phrases used by the senderin an electronic message may not be understandable by the recipient. Itmay be desired that input suggestions are provided with respect to termsin an electronic message to facilitate understanding of the terms by theintended recipient in various scenarios. Further, it may be desired thatintelligent input suggestions are provided that take advantage ofinformation available in the communication system, such as the time ofthe day the electronic message is input, the location of the electronicmessage sender and recipient, the communication history between thesender and recipient, etc. In the present disclosure, the term“electronic message” refers to a communication, which contains text,audio, video, data, and/or any other multimedia content, that is sentfrom one user to another user and delivered peer-to-peer or via anetwork.

Example embodiments of the present disclosure provide methods, devicesand systems for providing input suggestions. Consistent with disclosedembodiments, a sender device may identify an intended recipient of anelectronic message input by a sender and identify a location associatedwith the sender and a time associated with the electronic message inputby the sender. The sender device may determine the input suggestion forthe sender based on an input profile of the intended recipient, thelocation, and the time, and output the input suggestion via the senderdevice.

The embodiments herein include computer-implemented methods, tangiblenon-transitory computer-readable mediums, and systems. Thecomputer-implemented methods can be executed, for example, by at leastone processor that receives instructions from a non-transitorycomputer-readable storage medium. Similarly, systems and devicesconsistent with the present disclosure can include at least oneprocessor and memory, and the memory can be a non-transitorycomputer-readable storage medium. As used herein, a non-transitorycomputer-readable storage medium refers to any type of physical memoryon which information or data readable by at least one processor can bestored. Examples include random access memory (RAM), read-only memory(ROM), volatile memory, nonvolatile memory, hard drives, CD ROMs, DVDs,flash drives, disks, and any other known physical storage medium.Singular terms, such as “memory” and “computer-readable storage medium,”can additionally refer to multiple structures, such a plurality ofmemories or computer-readable storage mediums. As referred to herein, a“memory” can comprise any type of computer-readable storage mediumunless otherwise specified. A computer-readable storage medium can storeinstructions for execution by at least one processor, includinginstructions for causing the processor to perform steps or stagesconsistent with an embodiment herein. Additionally, one or morecomputer-readable storage mediums can be utilized in implementing acomputer-implemented method. The term “computer-readable storage medium”should be understood to include tangible items and exclude carrier wavesand transient signals.

FIG. 1 shows an example of a communications system 100 in which variousimplementations as described herein may be practiced. As shown in FIG.1, communications system 100 includes a plurality of user devices120A-120E associated with a plurality of users 130A-130E respectively.In some embodiments, communications system 100 is, for example, acommunication platform based on a chat application, a text messageapplication, an EMAIL application, or a social network application thatallows users (e.g., 130A-130E) to exchange electronic messages,documents, audio or video content, gaming, and otherwise interact withone another in real-time using associated user devices (e.g.,120A-120E). In other embodiments, communications system 100 is acollaborative environment that allows a group of participants (e.g., oneor more users 130A-130E) using associated user devices (e.g., one ormore user devices 120A-120E) to engage in communications, such asinstant messaging (IM), chat, email, voice over IP (VoIP) phone call,audio or video conferencing, etc., as well as sharing communicationcontent associated with the collaboration such as data files, images,audio/video content, etc.

As shown in FIG. 1, communications system 100 includes one or more userdevices 120A-120E (collectively as user devices 120), a network 140, acommunication server 150, and a database 170. The components andarrangements shown in FIG. 1 are not intended to limit the disclosedembodiments, as the system components used to implement the disclosedprocesses and features can vary.

The network 140 facilitates communications and sharing of communicationcontent between the user devices 120 and the communication server 150.The network 140 may be any type of networks that providescommunications, exchanges information, and/or facilitates the exchangeof information between the communication server 150 and user devices120. For example, the network 140 may be the Internet, a Local AreaNetwork, a cellular network, a public switched telephone network(“PSTN”), or other suitable connection(s) that enables communicationssystem 100 to send and receive information between the components ofcommunications system 100. A network may support a variety of electronicmessaging formats, and may further support a variety of services andapplications for user devices 120.

The communication server 150 may be a system associated with acommunication service provider which provides electronic messagingservices to users, such as users 130A-130E. The communication server 150may also be configured to provide other data or services, such as voice,electronic messaging, real-time audio/video, to the users. Thecommunication server 150 may be a computer-based system includingcomputer system components, desktop computers, workstations, tablets,hand held computing devices, memory devices, and/or internal network(s)connecting the components. The communication server 150 may beconfigured to receive electronic messaging information from user devices120 over the network 140, process the electronic messaging information,store the electronic messaging information, and/or transmit electronicmessaging information to the user devices 120 over the network 140. Forexample, the communication server 150 may be configured to analyzecommunication content sent by users 130A-130E and generate an inputprofile for each of the users, where the input profile reflects thevocabulary comprehensible by the user and/or the user's preferredchoices of languages. The communication server 150 may send the inputprofiles to user devices 120A-120E, such that user devices 120A-120E mayprovide input suggestions based on the input profiles. In someimplementations, the functionality of the communication server 150described in the present disclosure is distributed among one or more ofthe user devices 120A-120E. For example, a part or all of thecommunication content delivered in the communications system 100 may bestored in one or more of the user devices 120, and one or more of theuser devices 120A-120E performs functions such as analyzing thecommunication content to generate input profiles of the users, andproviding the input profiles to other user devices.

The database 170 includes one or more physical or virtual storagescoupled with the communication server 150. The database 170 isconfigured to store content of an ongoing communication session and/orany previously completed communication sessions. The database 170 mayalso be adapted to store a plurality of input profiles of the users 130that reflect vocabularies comprehensible by the users and/or the users'preferred choices of languages. The data stored in the database 170 maybe transmitted to the communication server 150 before or during anongoing communication session. In some embodiments, the database 170 isstored in a cloud-based server (not shown) that is accessible by thecommunication server 150 and/or the user devices 120 through the network140. While the database 170 is illustrated as an external deviceconnected to the communication server 150, the database 170 may alsoreside within the communication server 150 as an internal component ofthe communication server 150.

As shown in FIG. 1, users 130A-130E communicate with one another usingvarious types of user devices 120A-120E via network 140. As an example,user devices 120A, 120B, and 120D include a display such as atelevision, tablet, computer monitor, video conferencing console, orlaptop computer screen. User devices 120A, 120B, and 120D may alsoinclude video/audio input devices such as a video camera, web camera, orthe like. As another example, user devices 120C and 120E include mobiledevices such as a tablet or a smartphone having display and video/audiocapture capabilities. User devices 120A-120E may also include one ormore software applications that facilitate the user devices to engage incommunications, such as IM, text messages, EMAIL, VoIP, videoconferences, with one another in a group communication environment whereeach user may view content posted by other users and may post contentthat can be accessed by other users in the communication group.

FIG. 2 is a diagram of an example of a user device 200 for use in acommunications system, such as communications system 100. The userdevice 200 can be used to implement computer programs, applications,methods, processes, or other software to perform embodiments describedin the present disclosure, such as the user devices 120A-120E. The userdevice 200 includes a memory interface 202, one or more processors 204such as data processors, image processors and/or central processingunits, and a peripherals interface 206. The memory interface 202, theone or more processors 204, and/or the peripherals interface 206 can beseparate components or can be integrated in one or more integratedcircuits. The various components in the user device 200 can be coupledby one or more communication buses or signal lines.

Sensors, devices, and subsystems can be coupled to the peripheralsinterface 206 to facilitate multiple functionalities. For example, amotion sensor 210, a light sensor 212, and a proximity sensor 214 can becoupled to the peripherals interface 206 to facilitate orientation,lighting, and proximity functions. Other sensors 216 can also beconnected to the peripherals interface 206, such as a positioning system(e.g., GPS receiver), a temperature sensor, a biometric sensor, or othersensing device, to facilitate related functionalities. A GPS receivercan be integrated with, or connected to, the user device 200. Forexample, a GPS receiver can be built into mobile telephones, such assmartphone devices. GPS software allows mobile telephones to use aninternal or external GPS receiver (e.g., connecting via a serial port orBluetooth). A camera subsystem 220 and an optical sensor 222, e.g., acharged coupled device (“CCD”) or a complementary metal-oxidesemiconductor (“CMOS”) optical sensor, may be utilized to facilitatecamera functions, such as recording photographs and video clips.

Communication functions may be facilitated through one or morewireless/wired communication subsystems 224, which includes an Ethernetport, radio frequency receivers and transmitters and/or optical (e.g.,infrared) receivers and transmitters. The specific design andimplementation of the wireless/wired communication subsystem 224 dependson the communication network(s) over which the user device 200 isintended to operate. For example, in some embodiments, the user device200 includes wireless/wired communication subsystems 224 designed tooperate over a GSM network, a GPRS network, an EDGE network, a Wi-Fi orWiMax network, and a Bluetooth® network.

An audio subsystem 226 may be coupled to a speaker 228 and a microphone230 to facilitate voice-enabled functions, such as voice recognition,voice replication, digital recording, and telephony functions.

The I/O subsystem 240 includes a touch screen controller 242 and/orother input controller(s) 244. The touch screen controller 242 iscoupled to a touch screen 246. The touch screen 246 and touch screencontroller 242 can, for example, detect contact and movement or breakthereof using any of a plurality of touch sensitivity technologies,including but not limited to capacitive, resistive, infrared, andsurface acoustic wave technologies, as well as other proximity sensorarrays or other elements for determining one or more points of contactwith the touch screen 246. While a touch screen 246 is shown in FIG. 2,the I/O subsystem 240 may include a display screen (e.g., CRT or LCD) inplace of the touch screen 246.

The other input controller(s) 244 is coupled to other input/controldevices 248, such as one or more buttons, rocker switches, thumb-wheel,infrared port, USB port, and/or a pointer device such as a stylus. Thetouch screen 246 can, for example, also be used to implement virtual orsoft buttons and/or a keyboard.

The memory interface 202 is coupled to memory 250. The memory 250includes high-speed random access memory and/or non-volatile memory,such as one or more magnetic disk storage devices, one or more opticalstorage devices, and/or flash memory (e.g., NAND, NOR). The memory 250stores an operating system 252, such as DRAWIN, RTXC, LINUX, iOS, UNIX,OS X, WINDOWS, or an embedded operating system such as VXWorkS. Theoperating system 252 can include instructions for handling basic systemservices and for performing hardware dependent tasks. In someimplementations, the operating system 252 can be a kernel (e.g., UNIXkernel).

The memory 250 may also store communication instructions 254 tofacilitate communicating with one or more additional devices, one ormore computers and/or one or more servers. The memory 250 can includegraphical user interface instructions 256 to facilitate graphic userinterface processing; sensor processing instructions 258 to facilitatesensor-related processing and functions; phone instructions 260 tofacilitate phone-related processes and functions; electronic messaginginstructions 262 to facilitate electronic-messaging related processesand functions; web browsing instructions 264 to facilitate webbrowsing-related processes and functions; media processing instructions266 to facilitate media processing-related processes and functions;GPS/navigation instructions 268 to facilitate GPS and navigation-relatedprocesses and instructions; camera instructions 270 to facilitatecamera-related processes and functions; and/or other softwareinstructions 272 to facilitate other processes and functions. The memory250 may also include multimedia conference call managing instructions274 to facilitate conference call related processes and instructions.The memory 250 may also include recipient vocabulary profiles.

In some embodiments, the communication instructions 254 include softwareapplications to facilitate connection with the communication server 150that hosts an electronic messaging communication session among aplurality of users. The electronic messaging instructions 262 mayinclude a software program to generate an input suggestion for a userinputting an electronic message on the user device. Further, theelectronic messaging instructions 262 may include software applicationsto receive a plurality of input profiles associated with a plurality ofusers from the communication server 150. The graphical user interfaceinstructions 256 may include a software program that facilitates displayof the input suggestions to a user associated with the user device andfacilitates the user to provide user input, and so on.

In the presently described embodiment, the instructions cause theprocessor 204 to perform one or more functions of the disclosed methods.For example, the instructions may cause the processor 204 to identify anintended recipient of an electronic message input by a user, identify alocation associated with the user and/or a time associated with theelectronic message input by the user, and/or application associated withthe electronic message input and determine an input suggestion for theuser based on an input profile of the intended recipient, the locationassociated with the user, and/or the time associated with the electronicmessage input by the user and/or application associated with theelectronic message input. In some embodiments, other components of thecommunications system 100 are configured to perform one or morefunctions of the disclosed methods. For example, the communicationserver 150 may be configured to determine an input suggestion for theuser and send the input suggestion to the user device associated withthe user. As another example, the communication server 150 may beconfigured to determine an input suggestion for the user and send theinput suggestion to the user device associated with the intendedrecipient of the electronic message.

Each of the above identified instructions and software applications maycorrespond to a set of instructions for performing one or more functionsdescribed above. These instructions need not be implemented as separatesoftware programs, procedures, or modules. The memory 250 may includeadditional instructions or fewer instructions. Furthermore, variousfunctions of the user device 200 may be implemented in hardware and/orin software, including in one or more signal processing and/orapplication specific integrated circuits.

FIG. 3 shows a diagram of an example communication server 150,consistent with the disclosed embodiments. The communication server 150includes a bus 302 (or other communication mechanism) whichinterconnects subsystems and components for transferring informationwithin the communication server 150. As shown, the communication server150 includes one or more processors 310, input/output (“I/O”) devices350, network interface 360 (e.g., a modem, Ethernet card, or any otherinterface configured to exchange data with a network), and one or morememories 320 storing programs 330 including, for example, server app(s)332, operating system 334, and data 340, and can communicate with anexternal database 170 (which, for some embodiments, may be includedwithin the communication server 150). The communication server 150 maybe a single server or may be configured as a distributed computer systemincluding multiple servers, server farms, clouds, or computers thatinteroperate to perform one or more of the processes and functionalitiesassociated with the disclosed embodiments.

The processor 310 may be one or more processing devices configured toperform functions of the disclosed methods, such as a microprocessormanufactured by Intel™ or manufactured by AMD™. The processor 310 maycomprise a single core or multiple core processors executing parallelprocesses simultaneously. For example, the processor 310 may be a singlecore processor configured with virtual processing technologies. Incertain embodiments, the processor 310 may use logical processors tosimultaneously execute and control multiple processes. The processor 310may implement virtual machine technologies, or other technologies toprovide the ability to execute, control, run, manipulate, store, etc.multiple software processes, applications, programs, etc. In someembodiments, the processor 310 may include a multiple-core processorarrangement (e.g., dual, quad core, etc.) configured to provide parallelprocessing functionalities to allow the communication server 150 toexecute multiple processes simultaneously. It is appreciated that othertypes of processor arrangements could be implemented that provide forthe capabilities disclosed herein.

The memory 320 may be a volatile or non-volatile, magnetic,semiconductor, tape, optical, removable, non-removable, or other type ofstorage device or tangible or non-transitory computer-readable mediumthat stores one or more program(s) 330 such as server apps 332 andoperating system 334, and data 340. Common forms of non-transitory mediainclude, for example, a flash drive a flexible disk, hard disk, solidstate drive, magnetic tape, or any other magnetic data storage medium, aCD-ROM, any other optical data storage medium, any physical medium withpatterns of holes, a RAM, a PROM, and EPROM, a FLASH-EPROM or any otherflash memory, NVRAM, a cache, a register, any other memory chip orcartridge, and networked versions of the same.

The communication server 150 may include one or more storage devicesconfigured to store information used by processor 310 (or othercomponents) to perform certain functions related to the disclosedembodiments. For example, the communication server 150 may includememory 320 that includes instructions to enable the processor 310 toexecute one or more applications, such as server apps 332, operatingsystem 334, and any other type of application or software known to beavailable on computer systems. Alternatively or additionally, theinstructions, application programs, etc. may be stored in an externaldatabase 170 (which can also be internal to the communication server150) or external storage communicatively coupled with the communicationserver 150 (not shown), such as one or more database or memoryaccessible over the network 140.

The database 170 or other external storage may be a volatile ornon-volatile, magnetic, semiconductor, tape, optical, removable,non-removable, or other type of storage device or tangible ornon-transitory computer-readable medium. The memory 320 and database 170may include one or more memory devices that store data and instructionsused to perform one or more features of the disclosed embodiments. Thememory 320 and database 170 may also include any combination of one ormore databases controlled by memory controller devices (e.g., server(s),etc.) or software, such as document management systems, Microsoft SQLdatabases, SharePoint databases, Oracle™ databases, Sybase™ databases,or other relational databases.

In some embodiments, the communication server 150 may be communicativelyconnected to one or more remote memory devices (e.g., remote databases(not shown)) through network 140 or a different network. The remotememory devices can be configured to store information that thecommunication server 150 can access and/or manage. By way of example,the remote memory devices could be document management systems,Microsoft SQL database, SharePoint databases, Oracle™ databases, Sybase™databases, or other relational databases. Systems and methods consistentwith disclosed embodiments, however, are not limited to separatedatabases or even to the use of a database.

The programs 330 include one or more software modules configured tocause processor 310 to perform one or more functions of the disclosedembodiments. Moreover, the processor 310 may execute one or moreprograms located remotely from one or more components of thecommunications system 100. For example, the communication server 150 mayaccess one or more remote programs that, when executed, performfunctions related to disclosed embodiments.

In the presently described embodiment, server app(s) 332 causes theprocessor 310 to perform one or more functions of the disclosed methods.For example, the server app(s) 332 may cause the processor 310 toanalyze communication content sent by a plurality of users, generateinput profiles of users that reflect vocabularies capable of beingunderstood by the users, and provide the input profiles to user devicesassociated with the users. In some embodiments, other components of thecommunications system 100 may be configured to perform one or morefunctions of the disclosed methods. For example, user devices 120A-120Emay be configured to analyze communication content sent by a pluralityof users and generate input profiles of the users that reflectvocabulary comprehensible by the users and/or language choices preferredby the users.

In some embodiments, the program(s) 330 may include the operating system334 performing operating system functions when executed by one or moreprocessors such as the processor 310. By way of example, the operatingsystem 334 may include Microsoft Windows™, Unix™, Linux™, Apple™operating systems, Personal Digital Assistant (PDA) type operatingsystems, such as Apple iOS, Google Android, Blackberry OS, or othertypes of operating systems. Accordingly, disclosed embodiments mayoperate and function with computer systems running any type of operatingsystem 334. The communication server 150 may also include software that,when executed by a processor, provides communications with network 140through the network interface 360 and/or a direct connection to one ormore user devices 120A-120E.

In some embodiments, the data 340 may include, for example, inputprofiles of a plurality of users that reflect vocabulary comprehensibleby the users and/or language choices preferred by the users. Forexample, the data 340 may include a wordbook for each user, where thewordbook includes a plurality of commonly used terms and correspondinguser-specific terms that are comprehensible by the user.

The communication server 150 may also include one or more I/O devices350 having one or more interfaces for receiving signals or input fromdevices and providing signals or output to one or more devices thatallow data to be received and/or transmitted by the communication server150. For example, the communication server 150 may include interfacecomponents for interfacing with one or more input devices, such as oneor more keyboards, mouse devices, and the like, that enable thecommunication server 150 to receive input from an operator oradministrator (not shown).

FIG. 4 is a flowchart of an example process 400 for providing an inputsuggestion for a user, in accordance with embodiments of the presentdisclosure. The steps associated with this example process may beperformed by, for example, a processor of the user device 120 of FIG. 1.The example process 400 allows the user device to provide inputsuggestions to a user that are relevant to the intended recipient andcurrent communication. For example, when a user types letters “re” in achat with a software developer, the user device may provide the word“replication” as the input suggestion, instead of “reply” or other termscommonly used in daily life.

In step 410, the user device identifies an intended recipient of anelectronic message input by a user. For example, in an EMAILapplication, the user device may identify the person in the “to” fieldof the header of the email as an intended recipient. As another example,in a chat application, the user device may identify participants in achat session other than the user as intended recipients of theelectronic message such as by using the @mention tagging. Methods knownby persons skilled in the art may be used to identify the intendedrecipient of an electronic message without departing the scope of thepresent disclosure. The present disclosure does not intend to limit themanner used to identify the intended recipient of the electronicmessage.

In step 420, the user device identifies a location associated with theuser and a time associated with the electronic message input by theuser. For example, the user device may use GPS and navigation-relatedfunctions provided by the user device to obtain the user's location. Theuser device may identify the time associated with the electronic messageinput by the user by using the clock or time-related functions providedby the user device. Alternatively, the time associated with theelectronic message can be resolved by a communication server orcomponents thereof, such as the communication server 150 of FIG. 3. Asanother example, the user device may provide a user interface thatallows the user to enter the current location or time the electronicmessage is being input. Otherwise, the current location and time may bedetermined based on an attachment to the electronic message, such as thetime and location of a photograph attached or included in the electronicmessage. In some embodiments, the user device detects a calendar eventscheduled on the user's calendar that is currently occurring and use thelocation described in the calendar event as the user's current location.In some embodiments, the user device may use multiple methods to detectthe user's location and determine the user's location based on thecombined results. The present disclosure does not intend to limit themanner used to identify the location associated with the user or toidentify the time associated with the electronic message input by theuser.

In step 430, the user device determines an input suggestion for the userbased on an input profile of the intended recipient, the locationassociated with the user, and the time associated with the electronicmessage input by the user. For example, the user device may previouslyreceive the input profile of the intended recipient from thecommunication server and store the input profile in a local memory. Asanother example, the user device may send a request to the communicationserver to retrieve the input profile of the intended recipient afteridentifying the intended recipient in step 410. The communication servermay send the input profile of the intended recipient to the user deviceafter receiving the request. As another example, the user device maysend a request to a remote cloud server to retrieve the input profile ofthe intended recipient and receive the input profile of the intendedrecipient from the cloud server. In some implementations, the inputprofile may indicate a vocabulary that is capable of being understood bythe intended recipient. For example, the input profile may include awordbook that contains a plurality of commonly used terms andcorresponding terms that are capable of being understood by the intendedrecipient. As another example, the input profile may include one or moreroles associated with the intended recipient, such as a softwaredevelopment team member, an accountant, a member of an interest group, amiddle school teacher, etc. The input profile may include therelationship between the electronic message sender and the electronicmessage recipient. For example, the input profile may indicate that theuser and the intended recipient are co-workers, relatives, neighbors,and so on. The user device may suggest more formal languages in theinput suggestion if the electronic message recipient is in a co-workerrelationship with the electronic message sender, and may suggestinformal languages in the input suggestion if the electronic messagerecipient is a family member or a personal friend of the electronicmessage sender. The method of generating the input profile will bedescribed in details later in connection with FIG. 5.

While the input profile of the intended recipient may provide anindication of the vocabulary understandable by the recipient, the userdevice may use other information available to improve the inputsuggestion for the user, such as the location and the time identified instep 420. For example, if the user device previously receives anelectronic message from the intended recipient, such as “where areyou?”, the user device may identify the user's current location andsuggest a response, such as “I am at the conference room 5C.” As anotherexample, if the user device receives the electronic message “where areyou?” from the user's co-worker around noon of the day, the user devicemay identify the user's current location, identify that it is aroundnoon of the day, and that the electronic message sender is the user'sco-worker. Correspondingly, the user device may suggest a response, suchas “I am at the conference room 5C. Let's go for lunch now.” As anotherexample, if the user device receives the electronic message “where areyou?” from the user's spouse at 6 pm of the day, the user device mayidentify that the user's current location is between the user's home andoffice, that it is after work hour of the day, and that the electronicmessage sender is the user's spouse. Correspondingly, the user devicemay suggest a response, such as “I'm on my way home.” Thus, the userdevice may determine the input suggestion before the user starts typingin the body of the electronic message.

In some embodiments, the user device further identifies calendar eventsstored in the user device and leverages the calendar information indetermining the input suggestion. For example, based on the calendarinformation, the user device may detect that the user is writing to oneof the meeting participants shortly after the start of the meeting, andthe user device may determine the input suggestion as “Will you joinus?”. In some implementations, the user device may identify the locationof the intended recipient for determining the input suggestion. Forexample, the intended recipient may send his geographical location tothe user device via some location sharing applications, and upondetecting that the meeting participant to whom the user is writing anelectronic message is currently not in the meeting room, the user devicemay determine the input suggestion as “Will you join us?”.

In some embodiments, the user device may identify the application in theuser device that the user is currently using for writing the electronicmessage and take that into account in determining the input suggestion.For example, if the user is using WhatsApp Messenger to type theelectronic message, the user device may determine that the electronicmessage is a part of a private chat conversation between the user andthe intended recipient, and correspondingly may suggest informallanguages in the input suggestion. As another example, if the user isusing EMAIL application or Skype for Business to input the electronicmessage, the user device may determine that the communication betweenthe user and the intended recipient is relatively formal, andcorrespondingly may suggest more formal languages in the inputsuggestion.

In some embodiments, the user device may identify one or more priorelectronic messages received from the intended recipient and determinethe input suggestion based on the prior electronic message. The inputsuggestion may be a word, a combination of words, or one or morecomplete sentences. As described in the above examples, if the userdevice receives a prior electronic message from the intended recipient,such as “where are you?”, the user device may identify the user'scurrent location and suggest a response based on the user's currentlocation. In some implementations, the user device may further identifythat the relationship between the user and the intended recipient andprovide an estimated time for the user to arrive at a likely destinationbased on the calendar event on the user device. For example, the userdevice may further identify that the intended recipient is the user'sco-worker, a meeting with the intended recipient is scheduled to startminutes ago, and it will approximately take the user 10 minutes to getto the meeting place. Correspondingly, the user device may suggest aresponse such as “I will be in the meeting room in about 10 minutes.” Asanother example, if the user device receives a prior electronic message“Are you available to join lunch with us this Friday?” from the intendedrecipient, the user device may identify, based on the calendar event,that the user has another appointment in Friday noon time but are freeother days of the week. Correspondingly, the user device may suggest aresponse such as “I'm not available for lunch this Friday. I can havelunch other days of this week.”

In some embodiments, when multiple pieces of information are used todetermine the input suggestion, the user device associates the resultsgenerated by the various pieces of information with predeterminedweights. For example, the user device may determine a predeterminedweight for each of the input profile of the intended recipient, thelocation associated with the user, the time associated with theelectronic message input by the user, respectively, and the inputsuggestion may be determined based on the predetermined weights. Thepredetermined weights corresponding to each piece of information mayvary depending on the application scenarios. For example, the inputprofile of the intended recipient may be assigned a greater weight thanthe location of the user when the user is initiating a new electronicmessage to the intended recipient, while the input profile of theintended recipient may be assigned a less weight than the location ofthe user when the user is replying a prior electronic message sent bythe intended recipient.

In step 440, the user device outputs the input suggestion to the user.For example, the input suggestion may be displayed in a window locatednear the area the user is typing into, and a user interface is providedfor the user to accept or reject the input suggestion. If the inputsuggestion is accepted by the user, the input suggestion may be insertedinto the body of the electronic message. In some implementations, anindication that an input suggestion is available may be displayed, andthe user may select the indication to view the input suggestion. In someimplementations, no user input to accept the input suggestion is needed,and the input suggestion may be displayed in the body of the electronicmessage directly. As another example, the input suggestion may be outputto the user via audio and/or video interfaces, and the user may acceptor reject the input suggestion by making an audio input, a gestureinput, or the like. The present disclosure does not intend to limit themanner the input suggestion is output via the user device.

In some implementations, when the input suggestion is accepted by theuser, the user device may send the electronic message that incorporatesthe input suggestion to the intended recipient, as well as the originaltexts that are input by the user with no the input suggestion. In doingso, the recipient may view both the suggested message and the originalmessage and may use them to learn the vocabulary of the electronicmessage sender. In some implementations, the user device may provide auser interface for the user to select whether to send the originalmessage with no input suggestion to the recipient.

While a single intended recipient is described above in the exampleprocess 400, the present disclosure does not intend to limit the numberof recipients in the electronic message. There may be a plurality ofintended recipients for an electronic message the user is writing, andthe example process 400 may be implemented similarly to provide an inputsuggestion. For example, the user device may provide an input suggestionbased on input profiles of the plurality of recipients, a locationassociated with the user, and a time associated with the electronicmessage input by the user. In some implementations, the user device mayidentify a common characteristic among the input profiles of theplurality of recipients and provide an input suggestion based on thecommon characteristic. For example, the user device may identify thateach of the intended recipients is a member of a software developmentteam and may provide an input suggestion that contains abbreviation oftechnical terms commonly used in the development team. In someimplementations, a menu with input suggestions for each recipient may beprovided.

In some implementations, some of the steps described in the exampleprocess 400 may be implemented by a server, such as the communicationserver 150 of FIG. 1. For example, the user device may identify intendedrecipient, the location of the user, and the time the electronic messageis input by the user and send the information to the server. The servermay subsequently retrieve the input profile of the intended recipient,and determine an input suggestion for the user based on the inputprofile, the location of the user, and the time the electronic messageis input by the user. The server may then send the input suggestion tothe user device for display.

FIG. 5 is a flowchart of an example process 500 for providing user inputprofiles, in accordance with embodiments of the present disclosure. Thesteps associated with this example process may be performed by, forexample, a processor of the communication server 150 of FIG. 1.

In step 510, the communication server receives communications from aplurality of users. For example, the communications may includeelectronic messages, emails, files shared, audio or video content sentby the users.

In step 520, the communication server generates an input profile foreach of the plurality of users based on the communications. For example,the communication server may analyze the communications from the usersand generate a wordbook that includes words used by the users in thecommunications. For example, the communication server may analyzecommunication between the user and the intended recipient as well ascommunication between the user and parties not involved in the currentconversation to create the input profile of the user. The communicationserver may also analyze the uses' roles and the relationship between theusers based on the contents of communications. The communication servermay continue to update the input profile periodically based on thecommunications occurring during the most recent time period.

In step 530, the communication server sends the input profiles to one ormore user devices associated with one or more users. For example, thecommunication server may send the input profiles to the plurality ofusers and update the input profiles periodically. As another example,the communication server may distribute the input profiles to a userdevice dynamically when the user composes an electronic message. Thecommunication server may receive a request for some or all of the inputprofiles from a user device associated with a user, and in response tothe request, the communication server may send the requested inputprofiles to the user device.

In some implementations, some of the steps described in the exampleprocess 500 may be implemented by a user device associated with a user,such as the user device 120 of FIG. 1. For example, a part or all of thecommunications may be stored in one or more of the user devices 120, andone or more of the user devices 120A-120E may perform functions such asgenerating user input profiles and sending the input profiles to otheruser devices or to the communication server. As another example, theuser device may generate an input profile for an intended recipientbased on past communications between the user and the intendedrecipient. The user device may send the input profile for the intendedrecipient to the communication server or share the input profile withother user devices.

In the preceding disclosure, various example embodiments have beendescribed with reference to the accompanying drawings. It will, however,be evident that various modifications and changes may be made thereto,and additional embodiments may be implemented, without departing fromthe broader scope of the disclosure as set forth in the claims thatfollow. The disclosure and drawings are accordingly to be regarded in anillustrative rather than restrictive sense.

Therefore, it is intended that the disclosed embodiments and examples beconsidered as examples only, with a true scope of the present disclosurebeing indicated by the following claims and their equivalents.

1.-20. (canceled)
 21. A computer-implemented method for providing userinput profiles, comprising: receiving communications from a plurality ofusers; generating a user input profile based on the communications; andsending the user input profile to a user device associated with theuser.
 22. The computer-implemented method of claim 21, wherein thecommunications from the plurality of users comprises an electronicmessage, an email, a shared file, an audio content, or a video content.23. The computer-implemented method of claim 21, further comprising:generating a wordbook comprising words used by the plurality of users inthe communications.
 24. The computer-implemented method of claim 21,further comprising: analyzing the communications between the user and anintended recipient; and analyzing a communication between the user andparties not involved in a current communication.
 25. Thecomputer-implemented method of claim 21, further comprising: analyzing arole associated with one of the plurality of users and a relationshipbetween the plurality of users based on a content of the communicationsfrom the plurality of users.
 26. The computer-implemented method ofclaim 21, further comprising: periodically updating the user inputprofile on the user device associated with the user.
 27. Thecomputer-implemented method of claim 21, further comprising:distributing the user input profile to the user device associated withthe user dynamically when the user composes an electronic message. 28.The computer-implemented method of claim 21, further comprising:distributing the user input profile to the user device associated withthe user based on a request received from the user device associatedwith the user.
 29. A system for establishing communication, comprising:a memory storing a set of instructions; and at least one processorconfigured to execute the instructions to: receive communications from aplurality of users; generate a user input profile based on thecommunications; and send the user input profile to a user deviceassociated with the user.
 30. The system of claim 29, wherein thecommunications from the plurality of users comprises an electronicmessage, an email, a shared file, an audio content, or a video content.31. The system of claim 29, wherein the at least one processor isfurther configured to execute the instructions to: generate a wordbookcomprising words used by the plurality of users in the communications.32. The system of claim 29, wherein the at least one processor isfurther configured to execute the instructions to: analyze thecommunications between the user and an intended recipient; and analyze acommunication between the user and parties not involved in a currentcommunication.
 33. The system of claim 29, wherein the at least oneprocessor is further configured to execute the instructions to: analyzea role associated with one of the plurality of users and a relationshipbetween the plurality of users based on a content of the communicationsfrom the plurality of users.
 34. The system of claim 29, further whereinthe at least one processor is further configured to execute theinstructions to: periodically update the user input profile on the userdevice associated with the user.
 35. The system of claim 29, wherein theat least one processor is further configured to execute the instructionsto: distribute the user input profile to the user device associated withthe user dynamically when the user composes an electronic message ordistributing the user input profile to the user device associated withthe user based on a request received from the user device associatedwith the user.
 36. A web-based server for establishing communication,comprising: a memory storing a set of instructions; and at least oneprocessor configured to execute the instructions to: receivecommunications from a plurality of users; generate a user input profilebased on the communications; and send the user input profile to a userdevice associated with the user.
 37. The web-based server of claim 36,wherein the at least one processor is further configured to execute theinstructions to: analyze the communications between the user and anintended recipient; and analyze a communication between the user andparties not involved in a current communication.
 38. The web-basedserver of claim 36, wherein the at least one processor is furtherconfigured to execute the instructions to: analyze a role associatedwith one of the plurality of users and a relationship between theplurality of users based on a content of the communications from theplurality of users.
 39. The web-based server of claim 36, wherein the atleast one processor is further configured to execute the instructionsto: periodically update the user input profile on the user deviceassociated with the user.
 40. The web-based server of claim 36, whereinthe at least one processor is further configured to execute theinstructions to: distribute the user input profile to the user deviceassociated with the user dynamically when the user composes anelectronic message or distributing the user input profile to the userdevice associated with the user based on a request received from theuser device associated with the user.